package com.instance.demo3;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class Person<T,V,C> {

	public T getModule() throws Exception{
		Class clazz = getClass();
		//获取带有泛型的父类
		//Type 是所有java编程语言中所有类型的公共高级接口，包括原始类型、参数化类型、数组类型、类型变量和基本类型。		
		Type type = clazz.getGenericSuperclass();
		ParameterizedType p = (ParameterizedType)type;
		//getActualTypeArguments获取参数化类型的数组，泛型可能有多个
		Type[] param = p.getActualTypeArguments();
		Class<T> c = (Class) param[0];//0 T,1 V,2 C
		T module = (T)c.newInstance();
		return module;
	}
}
